The present invention relates to embedding data in a JPEG2000 file format.
At the core of the JPEG2000 structure is a wavelet based compression methodology that provides for a number of benefits over the previous Discrete Cosine Transformation (DCT) compression methods used in the existing JPEG format. Essentially, wavelets are mathematical expressions that encode the image in a continuous stream; thereby avoiding the tendency toward visible artifacts that can sometimes result from DCT's division of an image into discrete compression blocks.
JPEG2000 wavelet technology can provide as much as a 20% improvement in compression efficiency over existing JPEG DCT compression methods. JPEG2000 wavelet technology also provides for both lossy and lossless compression, as opposed to the lossy technique used in the original JPEG, which can lead to image degradation at high compression levels. In addition, because the JPEG2000 format includes much richer content than existing JPEG files, the bottom line effect is the ability to deliver a Flashpix-level of information in a compressed image file that is 20% smaller than baseline JPEG and roughly 40% smaller than an equivalent Flashpix file.
Another inherent benefit of JPEG2000's use of wavelet technology is the ability to progressively access the encoded image in a smooth continuous fashion without having to download, decode, and/or print the entire file. In a way this allows for a virtual file system within the image file that can be flexibly arranged by the image providers to best suit the way that their users will need to access the information. For instance a “progressive-by-resolution” structure would allow the image information to stream to the user by starting with a low-resolution version and then progressively adding higher resolution as required. On the other hand, a “progressive-by-quality” structure might begin with a full resolution version but with minimal color data per pixel and then progressively add more bits per pixel as required.
Referring to FIG. 1, a conforming file for the JPEG2000 standard is typically described as a sequence of boxes, some of which contain other boxes. An actual file need not contain all of the boxes shown in FIG. 1, may contain different counts of the boxes, and/or could use the boxes in different positions in the file. A more complete description of the contents of these boxes is discussed in JPEG2000 Image Coding System: Compound Image File Format, JPEG2000 Part VI committee Draft, 9, March 2001. Schematically, the hierarchical organization of boxes in a JPEG2000 file is shown in FIG. 2. Boxes with dashed borders are optional in conforming JPEG2000 files. However, an optional box may define mandatory boxes within that optional box. In this case, if the optional box exists, the mandatory boxes within the optional box normally exist. FIG. 2 illustrates only the containment relationship between the boxes in the file. A particular order of those boxes in the file is not generally implied. Referring to FIGS. 3A-3D, a list of exemplary boxes that may be used in a JPEG2000 file are illustrated.
A JPEG2000 file may contain metadata boxes with intellectual property right information or vendor specific information. In this manner the JPEG200 file may be annotated with intellectual property rights information. In particular, the metadata will normally provide the ability to include copyright information, such as the proper copyright ownership of image files. This helps alleviate long held concerns regarding the unauthorized appropriation of image files without the copyright owners consent. In this manner, at least the copyright information will be provided together with the JPEG2000 file and the image described therein.
A JPEG2000 file may also include a UUID (universal unique identifier) box that contains vendor specific information. There may be multiple UUID boxes within the file. The UUID box is intended to provide additional vendor specific information for particularized applications, which would normally reflect information regarding the rendering or usage of the image contained within the file. However, the content to be provided within the UUID box is undefined.